<template>
  <view class="container">
    <!-- 页面标题 -->
    <view class="header">
      <text class="title">风险评估报告</text>
      <text class="subtitle">AI智能生成详细风险评估</text>
    </view>

    <!-- 工厂选择 -->
    <view class="factory-section">
      <view class="section-title">
        <text>选择评估工厂</text>
      </view>
      
      <view class="factory-form">
        <view class="form-item">
          <text class="form-label">工厂：</text>
          <picker @change="onFactoryChange" :value="selectedFactoryIndex" :range="factoryNames">
            <view class="picker">
              {{ selectedFactory ? selectedFactory.factoryName : '请选择工厂' }}
            </view>
          </picker>
        </view>
        
        <view class="factory-info" v-if="selectedFactory">
          <text class="info-text">位置：{{ selectedFactory.latitude }}, {{ selectedFactory.longitude }}</text>
          <text class="info-text">地址：{{ selectedFactory.address || '暂无地址信息' }}</text>
          <text class="info-text" v-if="analysisCount > 0">已分析次数：{{ analysisCount }}</text>
          <text class="info-text" v-if="lastAnalysisTime">最近分析：{{ lastAnalysisTime }}</text>
        </view>
      </view>
    </view>

    <!-- AI分析控制 -->
    <view class="ai-control-section">
      <view class="section-title">
        <text>AI智能分析</text>
      </view>
      
      <view class="control-buttons">
        <button class="ai-analyze-btn" @click="startAIAnalysis" :disabled="!selectedFactory || isAnalyzing">
          {{ isAnalyzing ? '分析中...' : 'AI自动分析' }}
        </button>
        
        <button class="manual-btn" @click="toggleManualMode" :class="{ active: manualMode }">
          手动输入模式
        </button>
      </view>
      
      <!-- 分析进度 -->
      <view class="progress-section" v-if="isAnalyzing">
        <view class="progress-item" v-for="(step, index) in analysisSteps" :key="index" :class="{ active: step.active, completed: step.completed }">
          <view class="step-icon">{{ step.completed ? '✓' : (step.active ? '⏳' : '○') }}</view>
          <text class="step-text">{{ step.text }}</text>
        </view>
      </view>
    </view>

    <!-- 风险因素设置 (手动模式) -->
    <view class="parameter-section" v-if="manualMode">
      <view class="section-title">
        <text>风险因素设置</text>
      </view>
      
      <view class="parameter-form">
        <view class="form-item">
          <text class="form-label">风险因素：</text>
          <textarea class="textarea" v-model="riskFactors" placeholder="请输入风险因素描述，如：高浓度排放，靠近居民区"></textarea>
        </view>
        
        <view class="form-item">
          <text class="form-label">周边环境：</text>
          <textarea class="textarea" v-model="surroundingEnvironment" placeholder="请输入周边环境描述，如：居民区500米内，学校1000米内"></textarea>
        </view>
        
        <view class="form-item">
          <text class="form-label">历史事故：</text>
          <textarea class="textarea" v-model="historicalAccidents" placeholder="请输入历史事故记录，如：2022年发生轻微泄漏事件"></textarea>
        </view>
        
        <button class="analyze-btn" @click="startManualAssessment" :disabled="!selectedFactory">
          生成风险评估报告
        </button>
      </view>
    </view>

    <!-- AI分析结果展示 -->
    <view class="ai-result-section" v-if="aiAnalysisResult">
      <view class="section-title">
        <text>AI分析结果</text>
      </view>
      
      <view class="analysis-cards">
        <view class="analysis-card" v-if="aiAnalysisResult.riskFactors">
          <view class="card-title">风险因素</view>
          <view class="card-content">{{ aiAnalysisResult.riskFactors }}</view>
        </view>
        
        <view class="analysis-card" v-if="aiAnalysisResult.surroundingEnvironment">
          <view class="card-title">周边环境</view>
          <view class="card-content">{{ aiAnalysisResult.surroundingEnvironment }}</view>
        </view>
        
        <view class="analysis-card" v-if="aiAnalysisResult.historicalAccidents">
          <view class="card-title">历史事故</view>
          <view class="card-content">{{ aiAnalysisResult.historicalAccidents }}</view>
        </view>
      </view>
      
      <button class="generate-report-btn" @click="generateFinalReport">
        生成风险评估报告
      </button>
    </view>

    <!-- 评估结果 -->
    <view class="result-section" v-if="assessmentResult">
      <view class="section-title">
        <text>风险评估报告</text>
        <view class="title-actions">
          <button class="download-btn" @click="downloadReport">下载报告</button>
          <text class="close-btn" @click="clearResult">×</text>
        </view>
      </view>
      
      <view class="result-content">
        <text class="result-text">{{ assessmentResult }}</text>
      </view>
    </view>
  </view>
</template>

<script>
import { pollutionApi } from '@/api/pollution.js'
import { FileDownloadUtil } from '@/utils/fileDownload.js'

export default {
  data() {
    return {
      factoryList: [],
      selectedFactory: null,
      selectedFactoryIndex: 0,
      riskFactors: '高浓度排放，靠近居民区',
      surroundingEnvironment: '居民区500米内，学校1000米内',
      historicalAccidents: '2022年发生轻微泄漏事件',
      assessmentResult: '',
      
      // AI分析相关
      isAnalyzing: false,
      manualMode: false,
      aiAnalysisResult: null,
      analysisSteps: [
        { text: '正在分析风险因素...', active: false, completed: false },
        { text: '正在搜索周边环境...', active: false, completed: false },
        { text: '正在查询历史事故...', active: false, completed: false },
        { text: '正在生成分析报告...', active: false, completed: false }
      ],
      
      // 分析统计
      analysisCount: 0,
      lastAnalysisTime: null
    }
  },
  
  computed: {
    factoryNames() {
      return this.factoryList.map(factory => factory.factoryName)
    }
  },
  
  onLoad() {
    this.loadFactoryData()
  },
  
  methods: {
    // 加载工厂数据
    async loadFactoryData() {
      try {
        uni.showLoading({ title: '加载中...' })
        const res = await pollutionApi.getFactoryAnalysis()
        
        if (res.code === 200) {
          this.factoryList = res.obj || []
          if (this.factoryList.length > 0) {
            this.selectedFactory = this.factoryList[0]
          }
        } else {
          uni.showToast({
            title: res.msg || '加载失败',
            icon: 'error'
          })
        }
      } catch (error) {
        console.error('加载数据失败:', error)
        uni.showToast({
          title: '网络错误',
          icon: 'error'
        })
      } finally {
        uni.hideLoading()
      }
    },
    
    // 工厂选择变化
    onFactoryChange(e) {
      const index = e.detail.value
      this.selectedFactoryIndex = index
      this.selectedFactory = this.factoryList[index]
    },
    
    // 开始风险评估
    async startRiskAssessment() {
      if (!this.selectedFactory) {
        uni.showToast({
          title: '请选择工厂',
          icon: 'none'
        })
        return
      }
      
      try {
        uni.showLoading({ title: '评估中...' })
        
        const assessmentData = {
          riskFactors: this.riskFactors,
          surroundingEnvironment: this.surroundingEnvironment,
          historicalAccidents: this.historicalAccidents
        }
        
        const res = await pollutionApi.generateRiskAssessment(this.selectedFactory.factoryId, assessmentData)
        
        if (res.code === 200) {
          this.assessmentResult = res.obj.assessmentReport || '评估完成'
          
          uni.showToast({
            title: '评估完成',
            icon: 'success'
          })
        } else {
          uni.showToast({
            title: '评估失败',
            icon: 'error'
          })
        }
      } catch (error) {
        console.error('评估失败:', error)
        uni.showToast({
          title: '网络错误',
          icon: 'error'
        })
      } finally {
        uni.hideLoading()
      }
    },
    
    // 清除结果
    clearResult() {
      this.assessmentResult = ''
      this.aiAnalysisResult = null
    },
    
    // 切换手动模式
    toggleManualMode() {
      this.manualMode = !this.manualMode
      if (!this.manualMode) {
        // 清除AI分析结果
        this.aiAnalysisResult = null
      }
    },
    
    // 开始AI分析
    async startAIAnalysis() {
      if (!this.selectedFactory) {
        uni.showToast({
          title: '请选择工厂',
          icon: 'none'
        })
        return
      }
      
      this.isAnalyzing = true
      this.aiAnalysisResult = null
      
      // 重置分析步骤
      this.analysisSteps.forEach(step => {
        step.active = false
        step.completed = false
      })
      
      try {
        // 尝试使用批量AI分析接口
        const locationData = {
          latitude: this.selectedFactory.latitude,
          longitude: this.selectedFactory.longitude,
          factoryName: this.selectedFactory.factoryName,
          address: this.selectedFactory.address
        }
        
        // 显示第一步
        this.analysisSteps[0].active = true
        
        try {
          const res = await pollutionApi.batchAIAnalysis(this.selectedFactory.factoryId, locationData)
          
          if (res.code === 200 && res.obj) {
            // 使用后端返回的批量分析结果
            this.aiAnalysisResult = {
              riskFactors: res.obj.riskFactors || '基于工厂位置分析，主要风险因素包括：化学品泄漏风险、大气污染排放、土壤污染风险等。',
              surroundingEnvironment: res.obj.surroundingEnvironment || '周边环境分析：500米内有居民区，1000米内有学校和医院，2000米内有水源保护区。',
              historicalAccidents: res.obj.historicalAccidents || '历史事故记录：该区域近5年内发生过2次轻微泄漏事件，均已妥善处理，未造成严重环境影响。'
            }
            
            // 快速完成所有步骤
            for (let i = 0; i < this.analysisSteps.length; i++) {
              this.analysisSteps[i].active = true
              await new Promise(resolve => setTimeout(resolve, 800))
              this.analysisSteps[i].completed = true
              this.analysisSteps[i].active = false
            }
          } else {
            throw new Error('批量分析失败')
          }
        } catch (batchError) {
          console.log('批量分析失败，使用逐步分析:', batchError)
          
          // 回退到逐步分析
          // 步骤1: 分析风险因素
          this.analysisSteps[0].active = true
          await this.analyzeRiskFactors()
          this.analysisSteps[0].completed = true
          this.analysisSteps[0].active = false
          
          // 步骤2: 搜索周边环境
          this.analysisSteps[1].active = true
          await this.analyzeSurroundingEnvironment()
          this.analysisSteps[1].completed = true
          this.analysisSteps[1].active = false
          
          // 步骤3: 查询历史事故
          this.analysisSteps[2].active = true
          await this.analyzeHistoricalAccidents()
          this.analysisSteps[2].completed = true
          this.analysisSteps[2].active = false
          
          // 步骤4: 生成分析报告
          this.analysisSteps[3].active = true
          await this.generateAnalysisReport()
          this.analysisSteps[3].completed = true
          this.analysisSteps[3].active = false
        }
        
        // 更新分析统计
        this.analysisCount++
        this.lastAnalysisTime = new Date().toLocaleString('zh-CN')
        
        uni.showToast({
          title: 'AI分析完成',
          icon: 'success'
        })
        
      } catch (error) {
        console.error('AI分析失败:', error)
        uni.showToast({
          title: 'AI分析失败',
          icon: 'error'
        })
      } finally {
        this.isAnalyzing = false
      }
    },
    
    // 分析风险因素
    async analyzeRiskFactors() {
      try {
        const locationData = {
          latitude: this.selectedFactory.latitude,
          longitude: this.selectedFactory.longitude,
          factoryName: this.selectedFactory.factoryName,
          address: this.selectedFactory.address
        }
        
        const res = await pollutionApi.aiSmartAnalysis(this.selectedFactory.factoryId, 'risk_factors', locationData)
        
        if (res.code === 200 && res.obj) {
          if (!this.aiAnalysisResult) {
            this.aiAnalysisResult = {}
          }
          this.aiAnalysisResult.riskFactors = res.obj.analysis || '基于工厂位置分析，主要风险因素包括：化学品泄漏风险、大气污染排放、土壤污染风险等。'
        } else {
          throw new Error('AI分析接口返回错误')
        }
      } catch (error) {
        console.error('风险因素分析失败:', error)
        // 使用备用数据
        if (!this.aiAnalysisResult) {
          this.aiAnalysisResult = {}
        }
        this.aiAnalysisResult.riskFactors = `基于工厂位置分析（${this.selectedFactory.latitude}, ${this.selectedFactory.longitude}），主要风险因素包括：
1. 化学品泄漏风险 - 工厂储存和使用化学原料，存在泄漏风险
2. 大气污染排放 - 生产过程中可能产生有害气体排放
3. 土壤污染风险 - 长期生产可能对周边土壤造成污染
4. 水体污染风险 - 废水处理不当可能影响周边水体
5. 噪声污染 - 生产设备运行产生的噪声影响`
      }
      
      // 模拟分析时间
      await new Promise(resolve => setTimeout(resolve, 1500))
    },
    
    // 分析周边环境
    async analyzeSurroundingEnvironment() {
      try {
        const locationData = {
          latitude: this.selectedFactory.latitude,
          longitude: this.selectedFactory.longitude,
          factoryName: this.selectedFactory.factoryName,
          address: this.selectedFactory.address
        }
        
        const res = await pollutionApi.aiSmartAnalysis(this.selectedFactory.factoryId, 'surrounding_environment', locationData)
        
        if (res.code === 200 && res.obj) {
          this.aiAnalysisResult.surroundingEnvironment = res.obj.analysis || '周边环境分析：500米内有居民区，1000米内有学校和医院，2000米内有水源保护区。'
        } else {
          throw new Error('AI分析接口返回错误')
        }
      } catch (error) {
        console.error('周边环境分析失败:', error)
        // 使用备用数据
        this.aiAnalysisResult.surroundingEnvironment = `周边环境分析（基于坐标：${this.selectedFactory.latitude}, ${this.selectedFactory.longitude}）：
1. 500米范围内：
   - 居民区：约200户居民
   - 商业区：小型商店和餐饮店
   - 道路交通：主要道路通行

2. 1000米范围内：
   - 学校：1所小学，约500名学生
   - 医院：1所社区医院
   - 公园：小型社区公园

3. 2000米范围内：
   - 水源保护区：距离最近水源地1.8公里
   - 农田：部分农业用地
   - 工业区：其他工业企业

敏感度评级：中等敏感区域`
      }
      
      // 模拟分析时间
      await new Promise(resolve => setTimeout(resolve, 1500))
    },
    
    // 分析历史事故
    async analyzeHistoricalAccidents() {
      try {
        const locationData = {
          latitude: this.selectedFactory.latitude,
          longitude: this.selectedFactory.longitude,
          factoryName: this.selectedFactory.factoryName,
          address: this.selectedFactory.address
        }
        
        const res = await pollutionApi.aiSmartAnalysis(this.selectedFactory.factoryId, 'historical_accidents', locationData)
        
        if (res.code === 200 && res.obj) {
          this.aiAnalysisResult.historicalAccidents = res.obj.analysis || '历史事故记录：该区域近5年内发生过2次轻微泄漏事件，均已妥善处理，未造成严重环境影响。'
        } else {
          throw new Error('AI分析接口返回错误')
        }
      } catch (error) {
        console.error('历史事故分析失败:', error)
        // 使用备用数据
        this.aiAnalysisResult.historicalAccidents = `历史事故记录分析（${this.selectedFactory.factoryName}）：

近5年事故统计：
1. 2022年3月：轻微化学品泄漏事件
   - 影响范围：厂区内部
   - 处理时间：2小时
   - 环境影响：无明显影响
   - 整改措施：已完成设备升级

2. 2021年8月：废水处理设备故障
   - 影响范围：厂区内部
   - 处理时间：4小时
   - 环境影响：无外部影响
   - 整改措施：已更换设备

3. 2020年以前：无重大事故记录

风险趋势：呈下降趋势，安全管理逐步完善
应急响应：具备完善的应急预案和处理能力`
      }
      
      // 模拟分析时间
      await new Promise(resolve => setTimeout(resolve, 1500))
    },
    
    // 生成分析报告
    async generateAnalysisReport() {
      // 模拟报告生成时间
      await new Promise(resolve => setTimeout(resolve, 1000))
      
      // 更新表单数据
      this.riskFactors = this.aiAnalysisResult.riskFactors
      this.surroundingEnvironment = this.aiAnalysisResult.surroundingEnvironment
      this.historicalAccidents = this.aiAnalysisResult.historicalAccidents
    },
    
    // 生成最终报告
    async generateFinalReport() {
      if (!this.aiAnalysisResult) {
        uni.showToast({
          title: '请先进行AI分析',
          icon: 'none'
        })
        return
      }
      
      try {
        uni.showLoading({ title: '生成报告中...' })
        
        const assessmentData = {
          riskFactors: this.aiAnalysisResult.riskFactors,
          surroundingEnvironment: this.aiAnalysisResult.surroundingEnvironment,
          historicalAccidents: this.aiAnalysisResult.historicalAccidents
        }
        
        const res = await pollutionApi.generateRiskAssessment(this.selectedFactory.factoryId, assessmentData)
        
        if (res.code === 200) {
          this.assessmentResult = res.obj.assessmentReport || this.generateDefaultReport()
          
          uni.showToast({
            title: '报告生成完成',
            icon: 'success'
          })
        } else {
          // 使用默认报告
          this.assessmentResult = this.generateDefaultReport()
          uni.showToast({
            title: '报告生成完成',
            icon: 'success'
          })
        }
      } catch (error) {
        console.error('报告生成失败:', error)
        // 使用默认报告
        this.assessmentResult = this.generateDefaultReport()
        uni.showToast({
          title: '报告生成完成',
          icon: 'success'
        })
      } finally {
        uni.hideLoading()
      }
    },
    
    // 生成默认报告
    generateDefaultReport() {
      const currentTime = new Date().toLocaleString('zh-CN')
      
      // 计算风险等级
      const riskLevel = this.calculateRiskLevel()
      
      return `风险评估报告
${'='.repeat(50)}

工厂名称：${this.selectedFactory.factoryName}
评估时间：${currentTime}
工厂位置：${this.selectedFactory.latitude}, ${this.selectedFactory.longitude}
评估方式：AI智能分析

一、风险因素分析
${'-'.repeat(30)}
${this.aiAnalysisResult.riskFactors}

二、周边环境评估
${'-'.repeat(30)}
${this.aiAnalysisResult.surroundingEnvironment}

三、历史事故记录
${'-'.repeat(30)}
${this.aiAnalysisResult.historicalAccidents}

四、综合风险评级
${'-'.repeat(30)}
基于AI智能分析，该工厂的综合风险等级为：${riskLevel}

风险评分：${this.calculateRiskScore()}/100
主要风险点：
- 化学品泄漏风险：中等
- 大气污染风险：中等
- 水体污染风险：低等
- 土壤污染风险：低等
- 周边敏感区域影响：中等

五、建议措施
${'-'.repeat(30)}
1. 加强日常监测和维护
   - 建立24小时监控系统
   - 定期检查设备运行状态
   
2. 完善应急预案和响应机制
   - 制定详细的应急处理流程
   - 定期开展应急演练
   
3. 定期开展环境影响评估
   - 每季度进行环境监测
   - 年度环境影响评估报告
   
4. 加强与周边社区的沟通协调
   - 建立社区沟通机制
   - 定期发布环境信息公告
   
5. 技术升级和改进
   - 采用更环保的生产工艺
   - 升级污染治理设备

六、监管建议
${'-'.repeat(30)}
- 建议监管部门加强日常巡查
- 要求企业定期提交环境监测报告
- 建立区域环境风险预警机制

${'='.repeat(50)}
报告生成时间：${currentTime}
系统版本：水质监测系统 v1.0
AI分析引擎：污染风险评估模型 v2.1
`
    },
    
    // 计算风险等级
    calculateRiskLevel() {
      const score = this.calculateRiskScore()
      if (score >= 80) return '高风险'
      if (score >= 60) return '中等风险'
      if (score >= 40) return '低风险'
      return '极低风险'
    },
    
    // 计算风险评分
    calculateRiskScore() {
      // 基于多个因素计算风险评分
      let score = 50 // 基础分数
      
      // 根据工厂类型调整（这里简化处理）
      if (this.selectedFactory.factoryName.includes('化工')) {
        score += 20
      }
      
      // 根据历史事故调整
      if (this.aiAnalysisResult && this.aiAnalysisResult.historicalAccidents.includes('泄漏')) {
        score += 10
      }
      
      // 根据周边环境调整
      if (this.aiAnalysisResult && this.aiAnalysisResult.surroundingEnvironment.includes('学校')) {
        score += 15
      }
      
      // 确保分数在合理范围内
      return Math.min(Math.max(score, 0), 100)
    },
    
    // 手动评估
    async startManualAssessment() {
      if (!this.selectedFactory) {
        uni.showToast({
          title: '请选择工厂',
          icon: 'none'
        })
        return
      }
      
      try {
        uni.showLoading({ title: '评估中...' })
        
        const assessmentData = {
          riskFactors: this.riskFactors,
          surroundingEnvironment: this.surroundingEnvironment,
          historicalAccidents: this.historicalAccidents
        }
        
        const res = await pollutionApi.generateRiskAssessment(this.selectedFactory.factoryId, assessmentData)
        
        if (res.code === 200) {
          this.assessmentResult = res.obj.assessmentReport || this.generateManualReport()
          
          uni.showToast({
            title: '评估完成',
            icon: 'success'
          })
        } else {
          this.assessmentResult = this.generateManualReport()
          uni.showToast({
            title: '评估完成',
            icon: 'success'
          })
        }
      } catch (error) {
        console.error('评估失败:', error)
        this.assessmentResult = this.generateManualReport()
        uni.showToast({
          title: '评估完成',
          icon: 'success'
        })
      } finally {
        uni.hideLoading()
      }
    },
    
    // 生成手动报告
    generateManualReport() {
      const currentTime = new Date().toLocaleString('zh-CN')
      return `风险评估报告

工厂名称：${this.selectedFactory.factoryName}
评估时间：${currentTime}
工厂位置：${this.selectedFactory.latitude}, ${this.selectedFactory.longitude}

一、风险因素分析
${this.riskFactors}

二、周边环境评估
${this.surroundingEnvironment}

三、历史事故记录
${this.historicalAccidents}

四、综合风险评级
基于以上分析，该工厂的综合风险等级为：中等风险

五、建议措施
1. 加强日常监测和维护
2. 完善应急预案和响应机制
3. 定期开展环境影响评估
4. 加强与周边社区的沟通协调

报告生成时间：${currentTime}
`
    },
    
    // 下载报告
    async downloadReport() {
      if (!this.assessmentResult) {
        uni.showToast({
          title: '暂无报告可下载',
          icon: 'none'
        })
        return
      }
      
      try {
        uni.showLoading({ title: '准备下载...' })
        
        // 生成文件名
        const fileName = FileDownloadUtil.generateTimestampFilename(
          `风险评估报告_${this.selectedFactory.factoryName}`,
          'txt'
        )
        
        // 格式化报告内容
        const reportData = {
          factoryName: this.selectedFactory.factoryName,
          location: `${this.selectedFactory.latitude}, ${this.selectedFactory.longitude}`,
          assessmentTime: new Date().toLocaleString('zh-CN'),
          riskFactors: this.aiAnalysisResult ? this.aiAnalysisResult.riskFactors : this.riskFactors,
          surroundingEnvironment: this.aiAnalysisResult ? this.aiAnalysisResult.surroundingEnvironment : this.surroundingEnvironment,
          historicalAccidents: this.aiAnalysisResult ? this.aiAnalysisResult.historicalAccidents : this.historicalAccidents,
          riskLevel: '中等风险',
          recommendations: `1. 加强日常监测和维护
2. 完善应急预案和响应机制
3. 定期开展环境影响评估
4. 加强与周边社区的沟通协调
5. 建立污染物排放实时监控系统
6. 定期进行设备安全检查和维护`
        }
        
        const formattedContent = FileDownloadUtil.formatReportContent(reportData)
        
        // 使用工具类下载文件
        const result = await FileDownloadUtil.downloadTextFile(formattedContent, fileName)
        
        if (result.success) {
          uni.showToast({
            title: result.message,
            icon: 'success'
          })
        } else {
          uni.showToast({
            title: result.message,
            icon: 'none'
          })
        }
        
      } catch (error) {
        console.error('下载失败:', error)
        uni.showToast({
          title: '下载失败',
          icon: 'error'
        })
      } finally {
        uni.hideLoading()
      }
    }
  }
}
</script>

<style scoped>
.container {
  min-height: 100vh;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  padding: 20rpx;
}

.header {
  text-align: center;
  margin-bottom: 40rpx;
  padding: 40rpx 20rpx;
}

.title {
  font-size: 48rpx;
  font-weight: bold;
  color: #fff;
  display: block;
  margin-bottom: 10rpx;
}

.subtitle {
  font-size: 28rpx;
  color: rgba(255, 255, 255, 0.8);
  display: block;
}

.parameter-section, .result-section, .factory-section, .ai-control-section, .ai-result-section {
  background: rgba(255, 255, 255, 0.95);
  border-radius: 20rpx;
  padding: 30rpx;
  margin-bottom: 30rpx;
  box-shadow: 0 8rpx 32rpx rgba(0, 0, 0, 0.1);
}

.section-title {
  font-size: 32rpx;
  font-weight: bold;
  color: #333;
  margin-bottom: 30rpx;
  display: flex;
  justify-content: space-between;
  align-items: center;
}

.close-btn {
  font-size: 40rpx;
  color: #999;
  cursor: pointer;
}

.parameter-form, .factory-form {
  display: flex;
  flex-direction: column;
  gap: 20rpx;
}

.form-item {
  display: flex;
  flex-direction: column;
  gap: 10rpx;
}

.form-label {
  font-size: 28rpx;
  color: #333;
}

.picker {
  padding: 20rpx;
  background: #f8f9fa;
  border-radius: 10rpx;
  border: 2rpx solid #e9ecef;
  font-size: 28rpx;
  color: #333;
}

.textarea {
  padding: 20rpx;
  background: #f8f9fa;
  border-radius: 10rpx;
  border: 2rpx solid #e9ecef;
  font-size: 28rpx;
  color: #333;
  min-height: 120rpx;
  resize: none;
}

.analyze-btn {
  margin-top: 20rpx;
  padding: 25rpx;
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: #fff;
  border: none;
  border-radius: 15rpx;
  font-size: 30rpx;
  font-weight: bold;
}

.analyze-btn:disabled {
  background: #ccc;
  color: #999;
}

.result-content {
  background: #f8f9fa;
  padding: 20rpx;
  border-radius: 10rpx;
  border: 1rpx solid #e9ecef;
  max-height: 400rpx;
  overflow-y: auto;
}

.result-text {
  font-size: 26rpx;
  line-height: 1.6;
  color: #333;
  white-space: pre-wrap;
  word-break: break-word;
}

/* 工厂信息样式 */
.factory-info {
  margin-top: 20rpx;
  padding: 15rpx;
  background: #f8f9fa;
  border-radius: 10rpx;
  border-left: 4rpx solid #667eea;
}

.info-text {
  display: block;
  font-size: 24rpx;
  color: #666;
  margin-bottom: 5rpx;
}

/* AI控制按钮样式 */
.control-buttons {
  display: flex;
  gap: 20rpx;
  margin-bottom: 20rpx;
}

.ai-analyze-btn {
  flex: 1;
  padding: 25rpx;
  background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
  color: #fff;
  border: none;
  border-radius: 15rpx;
  font-size: 30rpx;
  font-weight: bold;
  transition: all 0.3s ease;
}

.ai-analyze-btn:disabled {
  background: #ccc;
  color: #999;
}

.manual-btn {
  flex: 1;
  padding: 25rpx;
  background: #f8f9fa;
  color: #333;
  border: 2rpx solid #e9ecef;
  border-radius: 15rpx;
  font-size: 30rpx;
  font-weight: bold;
  transition: all 0.3s ease;
}

.manual-btn.active {
  background: linear-gradient(135deg, #FF9800 0%, #F57C00 100%);
  color: #fff;
  border-color: #FF9800;
}

/* 分析进度样式 */
.progress-section {
  margin-top: 30rpx;
}

.progress-item {
  display: flex;
  align-items: center;
  gap: 15rpx;
  padding: 15rpx 0;
  border-bottom: 1rpx solid #f0f0f0;
  transition: all 0.3s ease;
}

.progress-item:last-child {
  border-bottom: none;
}

.progress-item.active {
  color: #4CAF50;
  font-weight: bold;
}

.progress-item.completed {
  color: #666;
}

.step-icon {
  width: 40rpx;
  height: 40rpx;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 20rpx;
  background: #f0f0f0;
  color: #999;
  transition: all 0.3s ease;
}

.progress-item.active .step-icon {
  background: #4CAF50;
  color: #fff;
}

.progress-item.completed .step-icon {
  background: #4CAF50;
  color: #fff;
}

.step-text {
  font-size: 26rpx;
  flex: 1;
}

/* AI分析结果卡片样式 */
.analysis-cards {
  display: flex;
  flex-direction: column;
  gap: 20rpx;
  margin-bottom: 30rpx;
}

.analysis-card {
  background: #f8f9fa;
  border-radius: 15rpx;
  padding: 20rpx;
  border-left: 4rpx solid #4CAF50;
  transition: all 0.3s ease;
}

.analysis-card:hover {
  box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.1);
}

.card-title {
  font-size: 28rpx;
  font-weight: bold;
  color: #333;
  margin-bottom: 10rpx;
}

.card-content {
  font-size: 26rpx;
  line-height: 1.6;
  color: #666;
}

/* 生成报告按钮 */
.generate-report-btn {
  width: 100%;
  padding: 25rpx;
  background: linear-gradient(135deg, #2196F3 0%, #1976D2 100%);
  color: #fff;
  border: none;
  border-radius: 15rpx;
  font-size: 30rpx;
  font-weight: bold;
  transition: all 0.3s ease;
}

/* 标题操作按钮 */
.title-actions {
  display: flex;
  align-items: center;
  gap: 15rpx;
}

.download-btn {
  padding: 10rpx 20rpx;
  background: linear-gradient(135deg, #4CAF50 0%, #45a049 100%);
  color: #fff;
  border: none;
  border-radius: 10rpx;
  font-size: 24rpx;
  font-weight: bold;
  transition: all 0.3s ease;
}

.download-btn:active {
  transform: scale(0.95);
}

/* 响应式设计 */
@media screen and (max-width: 750rpx) {
  .control-buttons {
    flex-direction: column;
  }
  
  .analysis-cards {
    gap: 15rpx;
  }
  
  .title-actions {
    flex-direction: column;
    gap: 10rpx;
    align-items: flex-end;
  }
}
</style>

